struct Inner {
  a : vec3<i32>;
  b : i32;
  c : vec3<u32>;
  d : u32;
  e : vec3<f32>;
  f : f32;
  g : mat2x3<f32>;
  h : mat3x2<f32>;
  i : array<vec4<i32>, 4>;
}

struct S {
  arr : array<Inner>;
}

@binding(0) @group(0) var<storage, read_write> s : S;

@stage(compute) @workgroup_size(1)
fn main(@builtin(local_invocation_index) idx : u32) {
  s.arr[idx].a = vec3<i32>();
  s.arr[idx].b = i32();
  s.arr[idx].c = vec3<u32>();
  s.arr[idx].d = u32();
  s.arr[idx].e = vec3<f32>();
  s.arr[idx].f = f32();
  s.arr[idx].g = mat2x3<f32>();
  s.arr[idx].h = mat3x2<f32>();
  s.arr[idx].i = array<vec4<i32>, 4>();
}
